1. Field of the Invention
The invention relates to a distributed operating system for a digital computer system. More particularly, the invention concerns a high speed server in which different functions of the server""s state machine are distributed across a plurality of processors running a plurality of operating systems.
2. Description of the Related Art
The explosion in usage of the World Wide Web over the global Internet has created a corresponding need for servers that have the capability to host large web sites with increased speed and reliability. The Internet employs fiber optic cable and high speed switches and routers to carry all forms of digital content, for example voice, data, and video, across the globe at gigabit data rates (soon to be terabit data rates). On the Internet, the maximum number of users that a server must support is unpredictable and variable, and can range from a handful of users to potentially millions of users, which contrasts with local area networks (LANS) wherein the maximum number of users is relatively small. Consequently, there is a need for servers for use on the Internet that can support a large number of users and that can operate at terabit data rates.
A common solution for operating a large Web site is to construct a server farm. Constructing a server farm entails connecting together multiple servers (perhaps hundreds) with various networking schemes to approximate a single more powerful system. Constructing and operating a server farm is typically an expensive undertaking because server farms require a large amount of space which must be equipped with specialized cooling and power facilities. Additionally, server farms commonly require a staff of engineers to maintain. Server farms generally are complex, and commonly are unreliable due to an excessive amount of downtime. Another shortcoming of server farms is that they cannot provide the power and scalability that is often required by large and growing Web sites.
Symmetric Multi Processing (SMP) servers are a known alternative to server farms. However, the limited scalability of SMP servers generally makes them ill-suited to the needs of large scale Web sites. SMP servers and server farms often cannot handle the high stress, fast growth environment of the Web. For example, secure transactions, which are necessary for e-commerce, are known to frequently bog down SMP servers and server farms.
Computers that are networked over long distances, for example over the Internet, often have protracted response times due to the geographic distance between the client and the server. In order to decrease the time required for a server to respond to requests from clients, Web servers are sometimes replicated at one or more locations which are closer to clients. For example, a client in Japan seeking a connection with a server hosting an e-commerce Web site in Seattle, Wash., might be coupled to a duplicate server in Tokyo rather than the main server in Seattle, Wash. This places the data closer to the user. However, it is difficult to maintain consistency between the data served by duplicate servers, especially if the content is dynamically generated. For example, if a customer uses the on-line ordering capability of one Web server, and later attempts to check the status of an order on a duplicate server, the customer may not get accurate information. When duplicate servers are used, it is also difficult to accurately track hits to a Web site for advertising purposes.
In prior art Internet servers, frequently one machine performs (executes) the entire TCP/IP state diagram, which oftentimes results in sluggishness. In systems in which functions are distributed with clustering software, the distributed functions are typically layered on top of operating systems, for example Linux or Windows NT, which perform generally identical services. Consequently, the computing is distributed at the application level, which frequently results in latencies and other difficulties.
Accordingly, there is a need for a server with increased speed, security, reliability, scalability, capacity, and cost effectiveness, that also has reduced space, power, and cooling requirements, as well as reduced maintenance and operating costs.
Various aspects of the invention concern a server, methods, and software for implementing a distributed, high capacity, high speed, operating system referred to as the Federated Operating System(trademark) (Federated OS(trademark)). (xe2x80x9cFederated Operating System(trademark)xe2x80x9d and xe2x80x9cFederated OS(trademark)xe2x80x9d are trademarks of Thunder River Technologies, Inc.)
One embodiment of the invention concerns a web server that is implemented with a plurality of members which are categorized into member classes. Each member class has a distinct specialized operating system that is optimized for its function. Although each class of operating system is unique, most member classes, or all member classes, have common characteristics inherited from a common parent class. Together, the operating systems of the members make up the Federated Operating System. One illustrative embodiment includes at least one receiver member, at least one dispatcher member, and at least one responder member. Each member has an internal network interface for coupling to an internal network which is used for communications between the members. The internal network can be implemented with, for example, a backplane, a crossbar switch, a LAN, a WAN, or a wireless link (which could include a satellite link). Receiver members and responder members also have an external network interface for coupling to an external network such as the Internet. The external network can also be, for example, a LAN, a WAN, or a wireless network (which could include satellite links).
Receiver members receive requests from clients over the external network, and pass off data from the requests to dispatcher members over the internal network. The dispatcher member that is used for a particular connection uses the internal network to send information to a responder member, instructing the responder member to send data requested by the client to the client over the external network.
Members preferably are implemented with member hardware units that preferably include at least one CPU, RAM, ROM, an internal network interface, and an external network interface. (Alternately, members can be implemented as separate processes or threads on a uniprocessor or SMP (Symmetric Multi Processing) system.) Member hardware units preferably can be reconfigured to operate as any member class, which permits reconfiguring member hardware units during operation of the server for load balancing or to replace defective member hardware units.
Preferred embodiments of the invention use address, port, and host lookup algorithms that execute in a fixed amount of time even when searching databases with a large number of entries. For example, in an HTTP (Hyper Text Transfer Protocol) embodiment, large databases containing IP (Internet Protocol) addresses and TCP (Transmission Control Protocol) port numbers, and large databases containing host names, can be searched in a fixed amount of time. This allows the server to operate in real time even while handling a large number of simultaneous connections.
It is possible to locate different members in the same enclosure, or to separate members over small or large distances. For example, a receiver and dispatcher could be located in Seattle, Wash., while a responder of the same server could be located in Tokyo, Japan, in order to provide fast responses to clients in Japan.
The invention provides its users with a number of advantages such as increased speed, throughput, reliability, scalability, performance, security, and manageability. A server implementing the Federated OS can be scaled up to handle an extremely large volume of Web traffic, including encryption/decryption (for example, secure sockets layer (SSL) transactions used for e-commerce), without performance degradation. Additionally, a server embodying the Federated OS can be implemented in a compact enclosure without special power and cooling requirements, and can be managed and configured from a console by a single technician with minimal training. The invention also provides other advantages and benefits, which are apparent from the following description.